#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int MOD=1e7+1;
const int MAXN=1e5+1;
ll HaHash(char *a) {
    int length=strlen(a);
    ll seed=131;
    ll hash=0;
    for (int i=0; i<length; i++) {
        hash = (hash * seed) + a[i] - 'A';
    }
    return ((ull)hash<<1)>>1;
}
struct node {
    ll hash;
    int num;
};
vector<node> HashMap[MOD];
vector<int> G[MAXN];
bool visited[MAXN];
bool ok[MAXN];
char a[10005],b[10005],tmp;
bool flag;
void DFS(int a) {
    int l=G[a].size();
    ok[a]=true;
    visited[a]=true;
    int tmp;
    for (int i=0; i<l; i++) {
        tmp=G[a][i];
        if (visited[tmp]) {
            flag=false;
            return ;
        }
        DFS(tmp);
    }
    visited[a]=false;
}
int check(ll hash, int &num){
    int len=HashMap[hash%MOD].size();
    bool mdzz=false;
    for (int i=0; i<len; i++) {
        if (HashMap[hash%MOD][i].hash==hash) {
            return HashMap[hash%MOD][i].num;
        }
    }
    node tmp;
    tmp.hash=hash;
    tmp.num=num++;
    HashMap[hash%MOD].push_back(tmp);
    return num-1;
}
int main() {
    int n;
    cin>>n;
    int num=1;
    ll hash1,hash2;
    int num1,num2;
    node tmp1,tmp2;
    flag=true;
    for (int i=0; i<n; i++) {
        scanf("%s%c%s", a, &tmp, b);
        hash1=HaHash(a);

    }
    return 0;
}
